package com.hsmw.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.hsmw.common.base.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 订单车辆关系表
 * </p>
 *
 * @author WD
 * @since 2021-02-02
 */
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "HsmwOrderVehicleRelation对象", description = "订单车辆关系表")
@NoArgsConstructor
@AllArgsConstructor
public class HsmwOrderVehicleRelation extends BaseModel {

	private static final long serialVersionUID = 1L;

	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "接单时间")
	private LocalDateTime acceptOrderTime;

	@ApiModelProperty(value = "订单ID")
	private String orderId;

	@ApiModelProperty(value = "订单需求表ID")
	private String orderVehicleRequestId;

	@ApiModelProperty(value = "车辆ID")
	private String vehicleId;

	@ApiModelProperty(value = "车牌号")
	private String vehicleNum;

	@ApiModelProperty(value = " 所属租赁公司ID ")
	private String leasingCompanyId;

	@ApiModelProperty(value = "所属租赁公司名称")
	private String leasingCompanyName;

	@ApiModelProperty(value = "用户表-司机ID")
	private String driverId;

	@ApiModelProperty(value = "用户表-司机名称")
	private String driverName;

	@ApiModelProperty(value = "用户表-司机手机号")
	private String driverUsername;


	public String getExpectVolume() {
		return expectVolume;
	}

	public void setExpectVolume(String expectVolume) {
		this.expectVolume = expectVolume;
	}

	@ApiModelProperty(value = "预计方量")
	private String expectVolume;
	@ApiModelProperty(value = "司机方量")
	private String driverVolume;

	@ApiModelProperty(value = "工长方量")
	private String foreceManVolume;

	@ApiModelProperty(value = "确认方量")
	private String realVolume;

	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "结束时间")
	private LocalDateTime endTime;

	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "到车时间")
	private LocalDateTime reachTime;

	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "打卡时间")
	private LocalDateTime clockInTime;

	@ApiModelProperty(value = "车辆状态")
	private String vehicleWorkStatus;

	@ApiModelProperty(value = "车辆类型")
	private String vehicleModel;

	@ApiModelProperty(value = "车辆型号")
	private String vehicleType;

	@ApiModelProperty(value = "订单状态：进行中、已完成、已取消")
	private String orderStatus;

	@ApiModelProperty(value = "版本号")
	private Integer version;

	@ApiModelProperty(value = "评分")
	private String evaluateScore;

	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "出发时间")
	private LocalDateTime setoutTime;

	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "开始干活时间")
	private LocalDateTime startWorkTime;

	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "延时时间")
	private LocalDateTime delayTime;

	@ApiModelProperty(value = "问题内容")
	private String problemInfo;

	@ApiModelProperty(value = "问题语音")
	private String problemAudioUrl;

	@ApiModelProperty(value = "备注")
	private String remark;

	@ApiModelProperty(value = "语音备注")
	private String remarkAudioUrl;

	@ApiModelProperty(value = "问题语音备注ID")
	private String problemAudioId;

	@ApiModelProperty(value = "备注语音备注ID")
	private String remarkAudioId;

	@ApiModelProperty(value = "imei号码")
	private  String  imeiNum;

	@ApiModelProperty(value = " 项目施工位置 经度")
	private String lng;

	@ApiModelProperty(value = "项目施工位置 纬度")
	private String lat;

	@ApiModelProperty(value = "是否需要内置导航")
	private String needInsiderNav;

	@ApiModelProperty(value = "出发地点")
	private String setoutLocation;

	@ApiModelProperty(value = "出发地点名称")
	private String setoutLocationName;

	@ApiModelProperty(value = "审核前的状态")
	private String orderStatusBefore;

	@ApiModelProperty(value = "是否为强制派单 默认0 否，1 是")
	private String forces;

	@ApiModelProperty(value = "司机方量是否待确认 0. 未确认 1. 已确认")
	private String driverVolumeStatus;

	@ApiModelProperty(value = "是否为新派车辆 0 否，1 是")
	private String newVehicleFlag;

	@ApiModelProperty(value = "是否为外租车辆 0 否，1 是")
	private String outsideLeasingFlag;

	@ApiModelProperty(value = "结算状态 1。已冻结 2。已确认 3。已结算")
	private String settlementStatus;

	@ApiModelProperty(value = "结算金额")
	private BigDecimal settlementAmount;

	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "实时方量更新时间")
	private LocalDateTime realVolumeTime;

	@ApiModelProperty(value = "实时累计方量")
	private String realTimeVolume;

	@ApiModelProperty("底盘公里数")
	private String chassisKilometers;

	@ApiModelProperty("挪泵次数")
	private String movePumpCount;

	@ApiModelProperty(value = "星级评价")
	private  Integer  starRating;

	@ApiModelProperty("耗油量")
	private String fuelConsumption;

	@ApiModelProperty("结算方量")
	private String settlementVolume;

	@TableField(exist = false)
	private String statisticsTime;

	@ApiModelProperty(value = "是否为中控帮助签到 0 否 1 是 默认0")
	private String ifBizSign;

	@ApiModelProperty(value = "自动完成范围")
	private String rangeNum;

	@ApiModelProperty(value = "自动签到范围")
	private String signRangeNum;

	@ApiModelProperty(value = "修改时间标志")
	private int updateTimeFlag;

	@ApiModelProperty(value = "取消订单标志 1 下单人取消 2司机取消")
	private String cancelOrderFlag;

	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "取消订单时间")
	private LocalDateTime cancelOrderTime;

	@ApiModelProperty(value = "预计完成时间 小时")
	private String duration;

	@ApiModelProperty(value = "完成进度")
	private String workProgress;

	@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ApiModelProperty(value = "司机汇报时间")
	private LocalDateTime reportingTime;

}
